Given the increasing pervasiveness of the Internet on contemporary society, it has become imperative that Internet content is accessible to as many individuals as possible, regardless of native languages, countries of origin, or disabilities. In fact, in the United States, the Americans with Disabilities Act (ADA), which was codified into law to guarantee equal opportunity for individuals with disabilities in public accommodations, employment, transportation, state and local government services, and telecommunications, applies to Internet content created in association with these various affected areas.
The ADA requires, for example, that content made available on the Internet be made accessible to those with visual impairments, in particular, by requiring Internet content to be compatible with screen readers used by the visually disabled to access the Internet. A screen reader is a software program that utilizes voice synthesis to read aloud the contents of a web page or other content displayed on a computer.
For the non-visually impaired, most Internet content is viewed using a program known as a web browser. A web browser predominantly accepts web pages and other Internet content that is formatted in a language referred to as Hypertext Markup Language (HTML). Likewise, most screen readers are configured to access HTML-formatted web pages, given the pervasive nature of HTML content on the Internet.
Web pages formatted in HTML are able to integrate text with a large number of components, including images, tables, audio clips, video clips, animations, etc. In addition, text may be formatted with specific fonts, colors, attributes, etc. HTML is a tag-based markup language, whereby formats and components are described via tags that are embedded in a web page.
Tables, for example, are typically defined using a number of predefined tags. HTML tables include an array of cells disposed in rows and columns, and can include header columns and/or rows in addition to regular cells.
To comply with accessibility requirements, each non-header cell in an HTML table must indicate what headers apply to that cell. By doing so, a screen reader can alert a user as to which headers apply to a particular cell being accessed by the user. This capability is typically supported by first giving every header cell an ID attribute, and then configuring each cell in the table to point to every related header cell by placing the header's ID into the “headers” attribute for that cell.
In simple tables, where each non-header cell takes up no more than one row or column, it is relatively straightforward process to assign each non-header cell the ID's of the applicable row and/or column header. For complex tables, however, where individual cells may span multiple columns and/or rows, the assignment of applicable row/header ID's to each non-header cell is more problematic. In particular, any header that spans multiple columns and/or rows must be pointed to by cells in every column/row spanned by that header. Likewise, any non-header cell that spans multiple columns/rows must point to every header that fully or partially overlaps that cell.
Whenever a web page is originally authored in HTML format, the inclusion of appropriate header ID's in an HTML table for accessibility purposes is relatively straightforward. Moreover, even when a graphical HTML-based development environment is used, the inclusion of such functionality into the program code that generates table HTML code is relatively effortless.
However, this scenario is substantially more problematic when web pages are authored in other formats, and then converted to HTML by automated tools. For example, the Extensible Markup Language (XML) is often used in data-driven applications to generate tables and other data presentations. In XML, the building blocks of documents are defined by Document Type Definitions (DTD's). Tables, for example, may be defined using a DTD referred to as the CALS Table Model, which is also used as the basis for the Oasis XML Exchange Table Model. Tables defined using the CALS Table Model, as well as tables defined using other DTD's based upon the CALS Table Model such as the Oasis XML Exchange Table Model, will hereinafter collectively be referred to as “CALS-compatible” tables.
CALS-compatible tables are typically not directly readable by web browsers, and as a result, such tables typically must be converted to HTML prior to viewing in a web browser. Oftentimes, it would be desirable to be able to utilize a software tool to automate the conversion of such tables to HTML. However, it has been found that certain automated tools, such as those promulgated by the Wold Wide Web Consortium, are not readily capable of converting these tables to an HTML format for accessibility and access by screen readers, typically because such tools are intended to be side-effect-free, and as a result do not permit variables to be set and reset. As a result, developers are often required to manually edit the resulting tables for compliance with accessibility requirements. Given, however, the volume of Internet content, and the frequency at which it is updated, any requirement for manual editing can be extremely burdensome for a content provider.
One factor that complicates the problem of automatically converting CALS-compatible tables to accessible HTML tables stems from the limitations of the tools that are typically used to perform such conversions. Many conversions, for example, are performed using XSLT, which is a transformation language used to convert XML documents to other formats using the XSL Stylesheet Language for XML. XSLT, however, does not permit variables, once assigned specific values, to thereafter be changed to different values. From the standpoint of converting CALS-compatible tables to HTML, this limitation of XSLT eliminates the ability to use straightforward programming techniques, such as matrix-based operations, to determine the appropriate headers to identify in each non-header cell of a table being converted to HTML. As such, XSLT has not been considered a viable environment for converting CALS-compatible tables to accessible HTML tables.
Therefore, a significant need exists in the art for a manner of automating the conversion of CALS-compatible tables to HTML, while complying with accessibility requirements for the same.